/*
 * @Date: 2020-10-05 22:34:59
 * @Author: David
 * @LastEditors: OBKoro1
 * @LastEditTime: 2020-10-05 22:41:37
 * @FilePath: /huanyong-task-01-01/code/index3.js
 * @Description: someting...
 */
class Container {
    static of (value) {
       return new Container(value)
    }
    constructor(value){
      this._value = value;
    } 
    map(fn) {
        return new  Container(fn(this._value))
    }
}
class Maybe {
    static of(x) {
       return new Maybe(x);
    }
    isNothing() {
        return this._value === null || this._value === undefined
    }
    constructor(x) {
      this._value = x;
    }
    map(fn){
        return this.isNothing() ? this : Maybe.of(fn(this._value))
    }
}
module.exports = {Container,Maybe}